package 炫彩窗口基类

import (
	xc "gitee.com/go_888/xcgui/xcgui/xc"
	xcc "gitee.com/go_888/xcgui/xcgui/xcc"
)

// X结构_模态窗口 模态窗口.
type X结构_模态窗口 struct {
	windowBase
}

// 模态窗口_创建, 创建模态窗口; 当模态窗口关闭时, 会自动销毁模态窗口资源句柄.
//
// nWidth: 宽度.
//
// nHeight: 高度.
//
// pTitle: 窗口标题内容.
//
// hWndParent: 父窗口句柄.
//
// XCStyle: 炫彩窗口样式: xcc.Window_Style_.
func X创建模态窗口(宽度, 高度 int32, 标题 string, 父窗口句柄 uintptr, XC样式 xcc.X窗口样式) *X结构_模态窗口 {
	p := &X结构_模态窗口{}
	p.X设置句柄(xc.X模态窗口_创建(宽度, 高度, 标题, 父窗口句柄, XC样式))
	return p
}

// 模态窗口_创建扩展, 创建模态窗口, 增强功能.
//
// dwExStyle: 窗口扩展样式.
//
// dwStyle: 窗口样式.
//
// lpClassName: 窗口类名.
//
// x: 窗口左上角x坐标.
//
// y: 窗口左上角y坐标.
//
// cx: 窗口宽度.
//
// cy: 窗口高度.
//
// pTitle: 窗口名.
//
// hWndParent: 父窗口.
//
// XCStyle: GUI库窗口样式: xcc.Window_Style_.
func X创建模态窗口EX(扩展样式, 样式 uint32, 类名 string, x坐标, y坐标, 宽度, 高度 int32, 窗口名 string, 父窗口 uintptr, XC样式 xcc.X窗口样式) *X结构_模态窗口 {
	p := &X结构_模态窗口{}
	p.X设置句柄(xc.X模态窗口_创建EX(扩展样式, 样式, 窗口名, x坐标, y坐标, 宽度, 高度, 类名, 父窗口, XC样式))
	return p
}

// NewModalWindowByLayout 从布局文件创建对象, 失败返回nil.
//
// pFileName: 布局文件名.
//
// hParent: 父对象句柄.
//
// hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.
func X创建模态窗口并按布局文件(文件名 string, 父对象句柄 int, 附加窗口句柄 uintptr) *X结构_模态窗口 {
	handle := xc.X炫彩_加载布局文件(文件名, 父对象句柄, 附加窗口句柄)
	if handle > 0 {
		p := &X结构_模态窗口{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// NewModalWindowByLayoutZip 从压缩包中的布局文件创建对象, 失败返回nil.
//
// pZipFileName: zip文件名.
//
// pFileName: 布局文件名.
//
// pPassword: zip密码.
//
// hParent: 父对象句柄.
//
// hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.
func X创建模态窗口并按zip布局文件(zip文件名 string, 布局文件名 string, zip密码 string, 父对象句柄 int, 附加窗口句柄 uintptr) *X结构_模态窗口 {
	handle := xc.X炫彩_加载zip布局文件(zip文件名, 布局文件名, zip密码, 父对象句柄, 附加窗口句柄)
	if handle > 0 {
		p := &X结构_模态窗口{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// NewModalWindowByLayoutZipMem 从内存压缩包中的布局文件创建对象, 失败返回nil.
//
// data: 布局文件数据.
//
// pFileName: 布局文件名.
//
// pPassword: zip密码.
//
// hParent: 父对象句柄.
//
// hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.
func X创建模态窗口并按内存zip布局文件(字节集 []byte, 文件名 string, zip密码 string, 父对象句柄 int, 附加窗口句柄 uintptr) *X结构_模态窗口 {
	handle := xc.X炫彩_加载内存zip布局文件(字节集, 文件名, zip密码, 父对象句柄, 附加窗口句柄)
	if handle > 0 {
		p := &X结构_模态窗口{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// NewModalWindowByLayoutStringW 从布局文件字符串W创建对象, 失败返回nil.
//
// pStringXML: 字符串.
//
// hParent: 父对象.
//
// hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.
func X创建模态窗口并按布局文件文本W(xml文本 string, 父对象 int, 附加窗口句柄 uintptr) *X结构_模态窗口 {
	handle := xc.X炫彩_加载布局文件从文本W(xml文本, 父对象, 附加窗口句柄)
	if handle > 0 {
		p := &X结构_模态窗口{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// NewModalWindowByLayoutEx 从布局文件创建对象, 失败返回nil.
//
// pFileName: 布局文件名.
//
// pPrefixName: 名称(name)前缀, 可选参数; 给当前布局文件中所有name属性增加前缀, 那么name属性值为: 前缀 + name.
//
// hParent: 父对象句柄.
//
// hParentWnd: 父窗口句柄HWND, 提供给第三方窗口使用.
//
// hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.
func X创建模态窗口并按布局文件EX(文件名, 名称前缀 string, 父对象句柄 int, 父窗口句柄, 附加窗口句柄 uintptr) *X结构_模态窗口 {
	handle := xc.X炫彩_加载布局文件Ex(文件名, 名称前缀, 父对象句柄, 父窗口句柄, 附加窗口句柄)
	if handle > 0 {
		p := &X结构_模态窗口{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// NewModalWindowByLayoutZipResEx 从RC资源zip压缩包中的布局文件创建对象, 失败返回nil.
//
// id: RC资源ID.
//
// pFileName: 布局文件名.
//
// pPassword: zip密码.
//
// pPrefixName: 名称(name)前缀, 可选参数; 给当前布局文件中所有name属性增加前缀, 那么name属性值为: 前缀 + name.
//
// hParent: 父对象句柄.
//
// hParentWnd: 父窗口句柄HWND, 提供给第三方窗口使用.
//
// hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.
//
// hModule: 模块句柄, 可填0.
func X创建模态窗口并按RC资源zip压缩包布局文件EX(RC资源ID int32, 文件名, zip密码, 名称前缀 string, 父对象句柄 int, 父窗口句柄, 附加窗口句柄, 模块句柄 uintptr) *X结构_模态窗口 {
	handle := xc.X炫彩_加载布局文件资源zipEX(RC资源ID, 文件名, zip密码, 名称前缀, 父对象句柄, 父窗口句柄, 附加窗口句柄, 模块句柄)
	if handle > 0 {
		p := &X结构_模态窗口{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// NewModalWindowByLayoutZipEx 从压缩包中的布局文件创建对象, 失败返回nil.
//
// pZipFileName: zip文件名.
//
// pFileName: 布局文件名.
//
// pPassword: zip密码.
//
// pPrefixName: 名称(name)前缀, 可选参数; 给当前布局文件中所有name属性增加前缀, 那么name属性值为: 前缀 + name.
//
// hParent: 父对象句柄.
//
// hParentWnd: 父窗口句柄HWND, 提供给第三方窗口使用.
//
// hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.
func X创建模态窗口并按压缩包布局文件EX(zip文件名 string, 布局文件名 string, zip密码, 名称前缀 string, 父对象句柄 int, 父窗口句柄HWND, 附加窗口句柄 uintptr) *X结构_模态窗口 {
	handle := xc.X炫彩_加载zip布局文件Ex(zip文件名, 布局文件名, zip密码, 名称前缀, 父对象句柄, 父窗口句柄HWND, 附加窗口句柄)
	if handle > 0 {
		p := &X结构_模态窗口{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// NewModalWindowByLayoutZipMemEx 从内存压缩包中的布局文件创建对象, 失败返回nil.
//
// data: 布局文件数据.
//
// pFileName: 布局文件名.
//
// pPassword: zip密码.
//
// pPrefixName: 名称(name)前缀, 可选参数; 给当前布局文件中所有name属性增加前缀, 那么name属性值为: 前缀 + name.
//
// hParent: 父对象句柄.
//
// hParentWnd: 父窗口句柄HWND, 提供给第三方窗口使用.
//
// hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.
func X创建模态窗口并按内存压缩包布局文件EX(布局文件数据 []byte, 布局文件名 string, zip密码, 名称前缀 string, 父对象句柄 int, 父窗口句柄HWND, 附加窗口句柄 uintptr) *X结构_模态窗口 {
	handle := xc.X炫彩_加载内存zip布局文件Ex(布局文件数据, 布局文件名, zip密码, 名称前缀, 父对象句柄, 父窗口句柄HWND, 附加窗口句柄)
	if handle > 0 {
		p := &X结构_模态窗口{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// NewModalWindowByLayoutStringWEx 从布局文件字符串W创建对象, 失败返回nil.
//
// pStringXML: 字符串.
//
// pPrefixName: 名称(name)前缀, 可选参数; 给当前布局文件中所有name属性增加前缀, 那么name属性值为: 前缀 + name.
//
// hParent: 父对象.
//
// hParentWnd: 父窗口句柄HWND, 提供给第三方窗口使用.
//
// hAttachWnd: 附加窗口句柄, 附加到指定的窗口, 可填0.
func X创建模态窗口并按布局文件文本WEX(xml文本, 名称前缀 string, 父对象 int, 父窗口句柄HWND, 附加窗口句柄 uintptr) *X结构_模态窗口 {
	handle := xc.X炫彩_加载布局文件从文本WEx(xml文本, 名称前缀, 父对象, 父窗口句柄HWND, 附加窗口句柄)
	if handle > 0 {
		p := &X结构_模态窗口{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 模态窗口_附加窗口, 返回窗口对象.
//
// hWnd: 要附加的外部窗口句柄.
//
// XCStyle: 炫彩窗口样式: xcc.Window_Style_.
func X模态窗口附加窗口(外部窗口句柄 uintptr, XC样式 xcc.X窗口样式) *Window {
	p := &Window{}
	p.X设置句柄(xc.X模态窗口_附加窗口(外部窗口句柄, XC样式))
	return p
}

// 从句柄创建对象.
func X创建模态窗口并按句柄(句柄 int) *X结构_模态窗口 {
	p := &X结构_模态窗口{}
	p.X设置句柄(句柄)
	return p
}

// 从name创建对象, 失败返回nil.
func X创建模态窗口并按名称(名称 string) *X结构_模态窗口 {
	handle := xc.X取对象并按名称(名称)
	if handle > 0 {
		p := &X结构_模态窗口{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 从UID创建对象, 失败返回nil.
func X创建模态窗口并按UID(UID int32) *X结构_模态窗口 {
	handle := xc.X取对象并按UID(UID)
	if handle > 0 {
		p := &X结构_模态窗口{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 从UID名称创建对象, 失败返回nil.
func X创建模态窗口并按UID名称(名称 string) *X结构_模态窗口 {
	handle := xc.X取对象并按UID名称(名称)
	if handle > 0 {
		p := &X结构_模态窗口{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}
